草庐IT

Java SE - 集合

全部标签

c# - 我可以从 Dapper 查询返回多个派生类型的集合吗

我有一个类似这样的类结构:publicabstractclassDevice{publicintDeviceId{get;set;}//AdditionalProperties}publicclassDeviceA:Device{//SpecificBehaviour}publicclassDeviceB:Device{//SpecificBehaviour}我需要检索设备列表,或实例化为适当派生类型的单个设备(基于数据库中设备记录中的类型值)。也就是说,Device对象的集合应该包含许多具有不同类型的对象,所有这些对象都派生自Device。我已经通过以下方式实现了这一点,但总觉得有些

c# - 使用 NHibernate 对延迟加载的集合进行分页

我读了thisarticle其中Ayende指出NHibernate可以(与EF4相比):Collectionwithlazy=”extra”–LazyextrameansthatNHibernateadaptstotheoperationsthatyoumightrunontopofyourcollections.Thatmeansthatblog.Posts.Countwillnotforcealoadoftheentirecollection,butratherwouldcreatea“selectcount(*)fromPostswhereBlogId=1”statement,

c# - 最轻量级的 .NET 集合

我想知道,.NET中的集合实现有何不同。例如,我经常使用List等来存储项目列表。但是我只需要一个容器来装元素,我想我不需要List的所有功能有。我只需要一个具有put方法的容器,并将允许客户端代码迭代容器。是否有更快、更轻量级的集合实现来实现IEnumerable在.NET中? 最佳答案 实现IEnumerable的最轻量级容器是类型化数组。它没有Add方法(因此不会像列表那样动态调整大小),但如果您预先知道需要多少元素,则可以定义数组并在给定位置插入元素。varmyArray=newint[10];myArray[0]=123;

c# - 如果列表/集合为空或 null 且无法迭代(不是参数),抛出什么异常类型?

假设一个简单的例子,其中一个方法检索一个集合(例如包含一些配置字符串的列表)并尝试以某种方式检查它:voidInit(){XmlDocumentconfig=newXmlDocument();config.Load(someXml);varlist=config.SelectNodes("/root/strings/key");//Normally,listshouldnotbenulloremptyif(list==null||list.Count==0)thrownewSomeExceptionType(message);//Whatkindofexceptiontothrow?/

c# - 我应该为包含 10 个或更少项目的集合使用字典,还是有更好的选择?

我有一个对象列表,我需要尽快找到一个对象(通过它的名称属性)。我应该使用什么数据结构?我知道我可以使用字典,但列表中的项目永远不会超过10个,如果我没记错的话,如果集合包含10个或更少的项目,字典将实现为一个数组。谢谢。 最佳答案 MSDN推荐ListDictionary对于包含10个或更少项目的集合:ThisisasimpleimplementationofIDictionaryusingasinglylinkedlist.ItissmallerandfasterthanaHashtableifthenumberofelement

c# - 功能集合

在我的csharp应用程序中,我有某些事件应该触发在特定线程上调用函数,该线程循环执行一些代码。现在,我想知道是否可以将这些函数及其参数存储在一个列表中,然后由另一个线程处理,而不是手动存储所有这些数据并拥有一个大的switch-case?伪代码:varfunc=pointer2somefunction(13,"abc");list.add(func);其他线程:while(list.Count>0){varfunc=list.Remove(0);func.Invoke();} 最佳答案 是的,您可以使用List来做到这一点或Que

c# - Linq:如何从集合中查询项目直到总和达到某个值

给定以下对象:publicclassProduct{stringName{get;}intQuantity{get;}}使用Linq,我将如何查询List直到我得到一笔款项>=给定的数量?换句话说,如果我的列表看起来像NameQuantity-----------------prod15prod26prod77我想查询列表并拉取实例,直到得到总和>=8.在这种情况下,我会得到列表中的前两项。如果我想要总和>=12,我会得到所有三个。我知道我可以编写一个循环来为我做这件事,但我幻想有一些巧妙的单行代码使用Linq来实现同样的事情。谢谢 最佳答案

c# - 使用 linq 查询集合的子集合

我有一个产品集合,每个产品对象都有自己的ProductImages集合。每个ProductImage对象都有一个IsMainImagebool字段。我很难像这样构建Linq查询:selectproducts.productimages.imagenamewhereproducts.productid==1andproduct.productimages.ismainimage==true任何人都可以帮我解决这个问题,给我指出一个在线资源,在那里我可以学习如何编写这样的linq查询,或两者兼而有之?感谢您的帮助! 最佳答案 尝试类似的

c# - 如何返回集合的只读副本

我有一个包含集合的类。我想提供一个返回集合内容的方法或属性。如果调用类可以修改单个对象是可以的,但我不希望它们在实际集合中添加或删除对象。我一直在将所有对象复制到一个新列表,但现在我想我可以将列表作为IEnumerable返回。在下面的简化示例中,GetListC是返回集合的只读版本的最佳方式吗?publicclassMyClass{privateListmylist;publicMyClass(){mylist=newList();}publicvoidAdd(stringtoAdd){mylist.Add(toAdd);}//Returnsthelistdirectlypublic

对集合、复杂度以及泛型的认识

文章目录一、集合框架是什么?二、复杂度1.时间复杂度2.空间复杂度三、泛型 一、集合框架是什么?Java集合框架JavaCollectionFramework,又被称为容器container,是定义在java.util包下的一组接口interfaces和其实现类classes。类和接口如下:  1.Collection:是一个接口,包含了大部分容器常用的一些方法2.List:是一个接口,规范了ArrayList和LinkedList中要实现的方法      ArrayList:实现了List接口,底层为动态类型顺序表      LinkedList:实现了List接口,底层为双向链表3.Sta